-- @Author: 作者QQ381990860
-- @Date:   2021-11-05 10:34:34
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-23 06:59:05

local 场景类_好友列表 = class(窗口逻辑)
local bw = require("gge包围盒")(0,0,150,38)
local min = math.min
local floor = math.floor
local tp,zts,zts1
local mouseb = 引擎.鼠标弹起
local box = 引擎.画矩形
local insert = table.insert

function 场景类_好友列表:初始化(根)
	self.ID = 28
	self.x = 610+(全局游戏宽度-800)/2
	self.y = 60
	self.xx = 0
	self.yy = 0
	self.注释 = "好友列表"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.焦点1 =false
	self.可移动 = true
	local 资源 = 根.资源
	local 按钮 = 根._按钮
	local 自适应 = 根._自适应
	tp = 根
	self.资源组 = {
		[1] = 自适应.创建(0,1,190,495,3,9),
		[3] = 自适应.创建(8,1,170,430,3,9),
		[4] = 按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true),
		[5] = 按钮.创建(自适应.创建(11,4,72,20,1,3),0,0,4,true,true,"快速添加"),
		[6] = 按钮.创建(自适应.创建(31,4,10,13,4,3),0,0,4,true,true), --上
		[7] = 按钮.创建(自适应.创建(32,4,10,13,4,3),0,0,4,true,true),--下
		[8] =  根._滑块.创建(自适应.创建(33,4,10,32,4,3,nil),4,10,380,2),

		[10] = 按钮.创建(自适应.创建(11,4,72,20,1,3),0,0,4,true,true,"查找好友"),
	}
	for n=4,8 do
	   self.资源组[n]:绑定窗口_(28)
	end
	self.窗口时间 = 0
	self.选中 = 0
	self.加入 = 0
	zts = tp.字体表.普通字体
	zts1 = tp.字体表.描边字体
end

function 场景类_好友列表:打开(数据)
	if self.可视 then
		self.可视 = false
		self.资源组[8]:置起始点(0)
		self.选中 = 0
		self.加入 = 0
	else
	if  self.x > 全局游戏宽度 then
		self.x = 612+(全局游戏宽度-800)/2
    end
		self.数据 =数据
		self.资源组[8]:置起始点(0)
		insert(tp.窗口_,self)
		self.头像组 = {}
		tp.运行时间 = tp.运行时间 + 1
	    self.窗口时间 = tp.运行时间
	    self.可视 = true
	end
end

function 场景类_好友列表:显示(dt,x,y)
	self.资源组[4]:更新(x,y)

	self.资源组[6]:更新(x,y,self.加入 > 0)
	self.资源组[7]:更新(x,y,self.加入 < #self.数据 - 10)
	self.资源组[5]:更新(x,y)
	self.资源组[10]:更新(x,y)
	if self.资源组[4]:事件判断() then
		self:打开()
		return false
	elseif self.资源组[5]:事件判断() then
     	tp.好友开关 =true
		tp.鼠标.置鼠标("好友")
	elseif self.资源组[6]:事件判断() then
		self.资源组[8]:置起始点(self.资源组[8]:取百分比转换(self.加入-1,10,#self.数据))
	elseif self.资源组[7]:事件判断() then
		self.资源组[8]:置起始点(self.资源组[8]:取百分比转换(self.加入+1,10,#self.数据))
	elseif self.资源组[10]:事件判断() then
    	tp.窗口.好友查找:打开()
	end
	self.焦点1 =false
	self.焦点 = false
	self.资源组[1]:显示(self.x,self.y)

	self.资源组[4]:显示(self.x+self.资源组[1].宽度-20,self.y+3)
	zts1:显示(self.x+self.资源组[1].宽度/2-30,self.y+1,"好友信息")

	self.资源组[3]:显示(self.x+10,self.y+55)

	self.资源组[5]:显示(self.x+16,self.y+25)
	self.资源组[6]:显示(self.x+169,self.y+78)
	self.资源组[7]:显示(self.x+169,self.y+472)
	self.资源组[10]:显示(self.x+94,self.y+25,true)

	zts:置颜色(0xFFFFFFFF)
	zts:显示(self.x+65,self.y+59,"好友列表")
	if #self.数据 > 10 then
		self.资源组[8]:置高度(min(floor(400/(#self.数据-10)),32))
		self.加入 = min(math.ceil((#self.数据-10)*self.资源组[8]:取百分比()),#self.数据-10)
        self.资源组[8]:显示(self.x+169,self.y+92,x,y,self.鼠标)
	end

	for i=1,10 do
		if self.数据[i+self.加入] ~= nil then
			local jx = self.x+12
			local jy = self.y+40+i*40
			bw:置坐标(jx,jy)
			if self.头像组[i+self.加入] == nil or self.头像组[i+self.加入][1] ~= self.数据[i+self.加入].造型 then
				self.头像组[i+self.加入] = {self.数据[i+self.加入].造型}
				local n =  ModelData[self.头像组[i+self.加入][1]]
				self.头像组[i+self.加入][2] = tp.资源:载入(n.头像资源,"网易WDF动画",n.小头像)
			end
			local xz
			if bw:检查点(x,y) then
				self.焦点1 =true
				xz = true
			  if 引擎.鼠标按下(1) and self.鼠标 and not tp.消息栏焦点 then
			  引擎.场景.窗口.好友查看:打开(self.数据[i+self.加入],i+self.加入)
		       end
			end
			if i+self.加入 ~= self.选中 then
				if xz then
					if mouseb(0) and self.鼠标 and not tp.消息栏焦点 then
						self.选中 = i+self.加入
					end
					self.焦点 = true
				end
			else
 				if bw:检查点(x,y)  and 引擎.鼠标按下(0) and self.鼠标 and not tp.消息栏焦点 then
				 tp.窗口.好友聊天:打开(self.数据[i+self.加入])
		       end

				if xz and self.鼠标 and not tp.消息栏焦点 then
					self.焦点 = true
				end
				box(jx+39,jy+1,jx+155,jy+36,-10790181)
			end
		    tp.宠物头像背景_:显示(jx,jy)
		    zts:置颜色(0xFF000000)
		    zts:显示(jx+44,jy+4,self.数据[i+self.加入].名称)
		    zts:显示(jx+44,jy+20,self.数据[i+self.加入].等级.."级")
		    self.头像组[i+self.加入][2]:显示(jx+4,jy+4)
		end
	end
	if self.资源组[8].接触 then
		self.焦点 = true
	end
end


return 场景类_好友列表